package com.xjh.utils.enumutils;

import java.util.Objects;

/**
 * 返回结果状态码
 *
 * @author kevin
 * @company 湖南省安第斯信息科技有限公司, 版权所有
 * @date 2021/3/11
 */
public enum ResultStatusEnum implements IBaseEnum {

    SUCCESS("00000", "成功"),

    FAIL("A0001", "失败"),

    PENDDING("00001", "处理中，请稍后"),

    USER_ERROR("A0100", "用户名或密码不正确"),

    VERIFY_CODE_ERROR("A0101", "验证码不正确"),

    SESSION_TIMEOUT("A0102", "登录超时"),

    NO_PERMISSION("A0103", "无权限访问"),

    CODE_ERROR("A0104", "code不正确"),

    BIND_ERROR("A0105", "绑定失败"),

    REG_ERROR("A0106", "注册失败"),

    STATUS_ERROR("A0107", "账号不可用"),

    PHONE_ERROR("A0108", "手机号被占用"),

    NO_ACCESS_PERMISSION("A0109", "无权限访问"),

    URL_ERROR("A0200", "请求地址不正确"),

    NOT_VALIDATE("A0201", "参数校验异常"),

    PARAM_NOT_MATCH("A0202", "参数不匹配"),

    PARAM_NOT_NULL("A0203", "参数不能为空"),

    FILE_MAX_SIZE_LIMIT("A0204", "上传文件大小超过限制"),

    FILE_NOT_EXISTS("A0205", "没有上传文件"),

    EXCEL_DATA_EMPTY("A0206", "Excel数据为空"),

    FILE_SUFFIX_NOT_EXISTS("A0207", "没有文件后缀名"),

    SIGE_ERROR("A0300", "签名验证异常"),

    FILE_FORMAT_ERROR("A0208", "文件格式错误"),

    ORDER_NOT_EXISTS("A0209", "订单不存在"),

    ORDER_INOPERABLE("A0210", "订单不可操作"),

    SERVER_BUSY("B0100", "服务繁忙,请稍后重试"),

    SERVER_TIMEOUT("B0101", "服务连接超时,请稍后再试"),

    NET_ERROR("B0102", "网络异常,请稍后再试"),

    DATA_ERROR("B0103", "数据异常"),

    REPETITIVE_OPERATION_ERROR("B0104", "请勿重复操作"),

    GROUP_ID_ERROR("A0301","团ID错误"),

    GROUP_STATUS_ERROR("A0302","团单状态错误"),

    GROUP_LIMIT_ERROR("A0303","您已超过今日活动限制！"),

    GROUP_PEOPLE_ERROR("A0304","当前团已满员！"),

    ;

    private String code;

    private String msg;

    ResultStatusEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return msg;
    }

    public static ResultStatusEnum getEnum(String type){
        if (Objects.isNull(type)) return null;
        for (ResultStatusEnum e : ResultStatusEnum.values()) {
            if (e.getCode().equals(type)) return e;
        }
        return null;
    }
    public static ResultStatusEnum getEnumByMsg(String msg){
        if (Objects.isNull(msg)) return ResultStatusEnum.FAIL;
        for (ResultStatusEnum e : ResultStatusEnum.values()) {
            if (e.getMsg().equals(msg)) return e;
        }
        return ResultStatusEnum.FAIL;
    }

}
